home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-01-07 | 19.8 KB | 697 lines | [TEXT/ALFA] |
- # <nowrap>
- # Built for Eudora
-
- # Class message: A message
- # Elements:
- # field by name
- # Properties:
- # body string -- the body of the message
- # priority integer -- the priority
- # label integer -- the index of the label
- # status unread/already read/replied/forwarded/redirected/not sendable/sendable/queued/sent/never sent -- the message status
- # sender string -- the sender as appearing in the message summary
- # date string [r/o] -- the date as appearing in the message summary
- # subject string -- the subject as appearing in the message summary
- # size integer [r/o] -- the size of the message
- # outgoing boolean [r/o] -- is the message is outgoing?
- # signature none/standard/alternate -- which signature the message should have
- # QP boolean -- is Eudora allowed to encode text?
- # return receipt boolean -- is a return receipt is requested?
- # wrap boolean -- should the text be wrapped when sent?
- # tab expansion boolean -- should tabs get expanded to spaces?
- # keep copy boolean -- should a copy should be kept after message is sent?
- # preserve macintosh info boolean -- should Macintosh information always be sent with attachments?
- # attachment encoding AppleDouble/AppleSingle/BinHex/uuencode -- the type of encoding to use for attachments
- # show all headers boolean -- should all headers be visible?
- # transliteration table integer -- the resource id of the transliteration table
- # will be fetched boolean -- will the message be [re]fetched on next check?
- # will be deleted boolean -- will the message be deleted from server on next check?
- #
-
- proc mailMenu {} {}
- proc dummyMail {} {}
-
- enableMenuItem install "Rudimentary Eudora Interface" off
-
- proc showEudoraMenuProc {flag} {
- global showEudoraMenu mailMenu
-
- if {$showEudoraMenu} {
- insertMenu $mailMenu
- } else {
- removeMenu $mailMenu
- }
- }
-
- #===============================================================================
- newModeVar Mail tossOnQueue 1 1
- newModeVar Mail switchOnQueue 1 1
- newModeVar Mail immediateSend 0 1
- #===============================================================================
-
-
- proc checkMailPath {} {
- global mailPath modifiedVars
- return [checkRunning "Mail app:" "CSOm" mailPath]
- }
-
- if {![info exists eudoraBoxes]} {
- set eudoraBoxes {In Out}
- }
-
- menu -n $mailMenu -p eudoraProc {
- "<SbackgroundEudora"
- "<Seudora"
- "help"
- "(-"
- "/e<UnewMessage"
- "cc"
- "bcc"
- "(-"
- "/f<Usend"
- "/g<Ureply"
- "(-"
- "updateMailboxLists"
- {menu -n openMailbox -p mailBoxProc -m {}}
- {menu -n transfer -p transferProc -m {}}
- "/h<UmoveToTrash"
- "(-"
- {menu -n tellEudora -p eudoraProc {
- "/i<UflushOutbox"
- "/j<UcheckForMail"
- "(-"
- startNotifying
- stopNotifying}}
- {menu -n mailFlags -p mailFlagsProc {flushOnCheck alertOnIncoming}}
- }
- menu -n openMailbox -p mailBoxProc -m $eudoraBoxes
- menu -n transfer -p transferProc -m $eudoraBoxes
-
- proc eudoraProc {menu item} {
- global mailPath HOME
- global mailMenu
- switch $item {
- "eudora" {launch -f $mailPath}
- "backgroundEudora" {launch $mailPath}
- "help" {edit -r "$HOME:Help:Eudora"}
- "cc" {eudoraCc}
- "bcc" {eudoraBcc}
- "newMessage" {mailNewMsg}
- "reply" {mailReplymsg}
- "send" {checkMailPath; mailSendCreatedMsg}
- "flushOutbox" {checkMailPath; mailFlushOut}
- "checkForMail" {checkMailPath; mailCheck}
- "startNotifying" "checkMailPath; startNotifying"
- "stopNotifying" "checkMailPath; stopNotifying"
- "moveToTrash" {mailTrashmsg}
- default $item
- }
- }
-
- if {![info exists mailflushOnCheck]} {set mailflushOnCheck 1}
- if {![info exists mailalertOnIncoming]} {set mailalertOnIncoming 1}
- markMenuItem mailFlags flushOnCheck $mailflushOnCheck
- markMenuItem mailFlags alertOnIncoming $mailalertOnIncoming
-
-
- proc mailFlagsProc {menu flag} {
- global mail$flag modifiedVars
- set mail$flag [expr 1 - [set mail$flag]]
- lappend modifiedVars mail$flag
- markMenuItem mailFlags $flag [set mail$flag]
- }
-
-
- proc mailBoxProc {menu item} {
- global inboxMembers ALPHA eudoraBoxes modifiedVars
- global tileLeft tileTop tileWidth tileHeight errorHeight
-
- killMailboxWindow
-
- checkMailPath
- switchTo $ALPHA
-
- global trashedMsgs$item
- set trashedMsgs$item {}
-
- set inboxMembers {}
- set text {}
- set ind 1
- foreach msg [mailSenders $item] {
- set from [mailAddr [lindex $msg 0]]
- set tag {}
- while {[lsearch $inboxMembers $from$tag] >= 0} {
- if {![string length $tag]} {
- set tag { <2>}
- } else {
- regexp {[0-9]+} $tag tag
- set tag " <[expr $tag + 1]>"
- }
- }
- append text [format "%-40s : %s\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t░$item░$ind\r" "$from$tag" [lindex $msg 1]]
- lappend inboxMembers $from$tag
- incr ind
- }
- if {![string length $text]} {
- alertnote "No messages in '$item'!"
- return
- }
-
- new -n "* MAILBOX '$item' *" -g $tileLeft $tileTop $tileWidth $errorHeight
- global winModes
- set name [lindex [winNames] 0]
- changeMode [set winModes($name) Brws]
-
- insertText "(<cr> to go to message)\r-----\r$text"
-
- select [nextLineStart [nextLineStart 0]] [nextLineStart [nextLineStart [nextLineStart 0]]]
- setWinInfo dirty 0
- setWinInfo read-only 1
- message ""
- }
-
-
- proc killMailboxWindow {} {
- if {[set ind [lsearch [winNames] {*MAILBOX*}]] >= 0} {
- set win [lindex [winNames] $ind]
- bringToFront $win
- killWindow
- }
- }
-
-
- proc mailGotoMatch {} {
- if {[regexp {░(.+)░([0-9]+)} [getText [lineStart [getPos]] [nextLineStart [getPos]]] dummy folder ind]} {
- global trashedMsgs$folder
-
- set deleted 0
- for {set i 1} {$i < $ind} {incr i} {
- if {[lsearch [set trashedMsgs$folder] $i] >= 0} {
- incr deleted
- }
- }
- mailOpen $folder [expr $ind - $deleted] $ind
- }
- }
-
-
- proc mailAddr {name} {
- if {![regexp {<(.*)>} $name dummy addr]} {
- regexp {^[^ ]+} $name addr
- }
- return $addr
- }
-
-
- proc mailSenders {folder} {
- set cnt [mailCountMsgs $folder]
- set msgs {}
- for {set i 1} {$i <= $cnt} {incr i} {
- set subject {}
- regexp {From: (.*)} [mailGetField from $folder $i] dummy from
- regexp {Subject: (.*)} [mailGetField subject $folder $i] dummy subject
- lappend msgs [list $from $subject]
- }
- return $msgs
- }
-
-
- proc eudoraCc {} {
- if {![catch {set res [search -s -f 1 -r 1 -i 1 {cc:.*} 0]}]} {
- goto [lindex $res 0]
- endOfLine
- } else {
- beginningOfBuffer
- nextLine
- insertText "Cc: \r"
- backwardChar
- }
- }
-
-
- proc eudoraBcc {} {
- if {![catch {set res [search -s -f 1 -r 1 -i 1 {bcc:.*} 0]}]} {
- goto [lindex $res 0]
- endOfLine
- } else {
- beginningOfBuffer
- nextLine
- insertText "Bcc: \r"
- backwardChar
- }
- }
-
-
- proc mailFlushOut {} {
- global MailmodeVars
- message "Telling Eudora to flush messages╔"
-
- AEBuild 'CSOm' CSOm eCon eSen bool(╟01╚) eChk bool(╟00╚)
- message ""
- }
-
-
- proc mailCheck {} {
- global MailmodeVars mailflushOnCheck
- message "Told Eudora to check for new mail╔"
-
- AEBuild 'CSOm' CSOm eCon eSen bool(╟0$mailflushOnCheck╚) eChk bool(╟01╚)
- }
-
-
- proc mailReplymsg {} {
- global inboxMembers
-
- set prefix "> "
- set res [search -s -f 1 -r 1 {^>==} 0]
- set header [getText 0 [lindex $res 0]]
-
- set from [mailGetFrom]
- if {![regexp {Subject: ([^\r]*)} $header dummy subject]} {set subject ""}
- set body [getText [expr [lindex $res 1] + 1] [maxPos]]
-
- regsub -all "\r" $body "\r$prefix" body
- mailNewMsg $from "Re: $subject" "\r$prefix$body\r"
- }
-
- proc transferProc {menu item} {
- doFolderMove $item
- }
-
-
- proc mailTrashmsg {} {
- doFolderMove Trash
- }
-
- proc doFolderMove {toFolder} {
- # Is this a summary or msg window?
- if {[regexp "MAILBOX" [lindex [winNames] 0]]} {
- if {![regexp {░(.*)░([0-9]+)} [getText [getPos] [nextLineStart [getPos]]] dummy folder orig]} {
- beep
- return
- }
- if {$toFolder == $folder} return
- global trashedMsgs$folder
-
- set deleted 0
- for {set i 1} {$i < $orig} {incr i} {
- if {[lsearch [set trashedMsgs$folder] $i] >= 0} {
- incr deleted
- }
- }
- set number [expr $orig - $deleted]
- set summary 1
- } else {
- set pos [lindex [search -f 1 -r 1 {^Msg} 0] 0]
- set text [getText $pos [nextLineStart $pos]]
- regexp {([0-9]+)" \(([0-9]+).*mailbox "([a-zA-Z]+)} $text dummy number orig folder
- if {$toFolder == $folder} return
- set summary 0
-
- global trashedMsgs$folder
- }
-
- message "Moving msg $number ($orig) of folder '$folder' to '$toFolder'"
- moveMsg $number $folder $toFolder
- if {!$summary} killWindow
-
- lappend trashedMsgs$folder $orig
-
- # Find summary info and delete it
- set win [lindex [winNames] 0]
- if {[regexp "MAILBOX" $win]} {
- setWinInfo read-only 0
-
- set inds [search -f 1 -r 1 "░$folder░$orig\$" 0]
- set pos [lindex $inds 0]
- deleteText [lineStart $pos] [nextLineStart $pos]
-
- setWinInfo dirty 0
- setWinInfo read-only 1
-
- nextLine
- upBrowse
- }
- }
-
-
- proc mailGetFrom {} {
- set res [search -s -f 1 -r 1 {>==} 0]
- set header [getText 0 [lindex $res 0]]
- if {[regexp {From: ([^\r]*)} $header dummy from]} {
- return [mailAddr $from]
- }
- error "No from line"
- }
-
-
-
- proc mailSendCreatedMsg {} {
- global MailmodeVars
-
- set name [checkMailPath]
- set res [search -s -f 1 -r 0 {>==text follows this line==<} 0]
- set header [getText 0 [lindex $res 0]]
-
- if {![regexp {To: ([^\r]*)} $header dummy to]} {set to ""}
- if {![regexp {Cc: ([^\r]*)} $header dummy cc]} {set cc ""}
- if {![regexp {Subject: ([^\r]*)} $header dummy subject]} {set subject ""}
-
- set body [getText [expr [lindex $res 1] + 1] [maxPos]]
-
- mailCreateMsg
- mailSetField to $to
- mailSetField cc $cc
- mailSetField subject $subject
- mailSetField "" $body
-
- if {$MailmodeVars(tossOnQueue)} {
- setWinInfo dirty 0
- killWindow
- }
-
- mailQueueLast
-
- if {$MailmodeVars(switchOnQueue)} {
- switchTo $name
- }
-
- if {$MailmodeVars(immediateSend)} {
- mailFlushOut
- } else {
- message "Message queued╔"
- }
- }
-
-
- proc mailNewMsg {{to ""} {subject ""} {body ""}} {
- new -n "New Mail"
- global winModes
- set name [lindex [winNames] 0]
- changeMode [set winModes($name) Mail]
-
- insertText "To: $to\rSubject: $subject\r>==text follows this line==<\r$body"
- setWinInfo dirty 0
- goto 0
- centerRedraw
- mailTab
- }
-
-
- proc mailTab {} {
- global mailKeywords
- if {[catch {search -s -f 1 -r 1 -i 1 "([join $mailKeywords {|}]|^>)" [getPos]} res]} {
- insertText "\t"
- return
- }
- if {[lookAt [lindex $res 0]] == ">"} {
- select [nextLineStart [lindex $res 1]] [maxPos]
- } else {
- goto [expr [lindex $res 1] + 1]
- endLineSelect
- }
- }
- bind '\t' mailTab Mail
-
-
- proc mailOpen {folder i originalNum} {
- global tileLeft tileTop tileHeight trashedMsgs$folder
-
- set from [mailGetField From $folder $i]
- set to [mailGetField To $folder $i]
- set subject [mailGetField Subject $folder $i]
- set sender [mailGetField Sender $folder $i]
- set cc [mailGetField cc $folder $i]
- set contents [mailGetField "" $folder $i]
-
- #===============================================================================
- global tileHeight tileWidth tileTop tileLeft errorHeight errorDisp
- set top $tileTop
- set geo [getGeometry]
- if {([lindex $geo 0] != $tileLeft) || ([lindex $geo 1] != $top) || ([lindex $geo 2] != $tileWidth) || ([lindex $geo 3] != $errorHeight) } {
- moveWin $tileLeft $top
- sizeWin $tileWidth $errorHeight
- }
- set mar 28
- incr top [expr $errorHeight + $mar]
- #===============================================================================
- new -n "MAIL" -g $tileLeft $top $tileWidth [expr $errorDisp - 5]
-
- global winModes
- set name [lindex [winNames] 0]
- changeMode [set winModes($name) Mail]
-
- set text {}
- if {[string length $subject]} {append text "$subject\r"}
- if {[string length $to]} {append text "$to\r"}
- if {[string length $from]} {append text "$from\r"}
- if {[string length $cc]} {append text "$cc\r"}
- if {[string length $sender]} {append text "$sender\r"}
- append text "Msg \"$i\" ($originalNum) of mailbox \"$folder\" Reply Trash\r"
- insertText "${text}>===============================================================================
- $contents
- "
- goto 0
- goto [lindex [search -f 1 -r 1 {^Msg "} 0] 0]
- set pos [getPos]
- regexp -indices {([0-9]+).*mailbox "(.+)".*(Reply).*(Trash)} [getText $pos [nextLineStart $pos]] dummy num fold rep tra
- colorSelectPos [expr $pos + [lindex $num 0]] [expr 1 + $pos + [lindex $num 1]] bold 12
- colorSelectPos [expr $pos + [lindex $fold 0]] [expr 1 +$pos + [lindex $fold 1]] bold 12
- hyperSelectPos [expr $pos + [lindex $rep 0]] [expr 1 +$pos + [lindex $rep 1]] "mailReplymsg"
- hyperSelectPos [expr $pos + [lindex $tra 0]] [expr 1 +$pos + [lindex $tra 1]] "mailTrashmsg"
-
- goto 0
- setWinInfo dirty 0
- setWinInfo read-only 1
- centerRedraw
- }
-
- proc colorSelectPos {from to ind ind2} {
- insertColorEscape $from $ind
- insertColorEscape $to $ind2
- }
-
- proc hyperSelectPos {from to text} {
- if {$from == $to} {
- beep
- return
- }
- insertColorEscape $from 3
- insertColorEscape $from 15 $text
- insertColorEscape $to 12
- insertColorEscape $to 0
- }
-
- proc mailFixMenus {} {
- global mailMenu
-
- set ins {}
- set outs {}
-
- set cnt [mailCountMsgs in]
- for {set i 1} {$i <= $cnt} {incr i} {
- lappend ins [mailGetField from in $i]
- }
- menu -n in {}
- foreach item $ins {
- addMenuItem -l "" in $item
- }
-
- set cnt [mailCountMsgs out]
- for {set i 1} {$i <= $cnt} {incr i} {
- lappend outs [mailGetField from out $i]
- }
- menu -n out {}
- foreach item $outs {
- addMenuItem -l "" out $item
- }
- }
-
-
- # make message at end of mailbox "out" of mail folder ""
- proc mailCreateMsg {} {
- AEBuild -r 'CSOm' core crel {insh} {insl{kobj:obj {form:name, want:type(euMB), seld:╥out╙, from:obj {form:name, want:type(euMF), seld:'TEXT'(), from:'null'()}}, kpos:end }} kocl {type(euMS)}
- }
-
-
- # Move msg w/ specified index between folders, including to Trash.
- proc moveMsg {msg infolder outfolder} {
- AEBuild -r 'CSOm' core move {----} "obj \{form:indx, want:type(euMS), seld:$msg, from:obj \{form:name, want:type(euMB), seld:╥$infolder╙, from:obj \{form:name, want:type(euMF), seld:'TEXT'(), from:'null'()\}\}\}" {insh} "insl\{kobj:obj \{form:name, want:type(euMB), seld:╥$outfolder╙, from:obj \{form:name, want:type(euMF), seld:'TEXT'(), from:'null'()\}\}, kpos:end \}"
- }
-
-
- # set field "fld" of message 0 to "to"
- proc mailSetField {fld to} {
- AEBuild -r 'CSOm' core setd {----} "obj \{form:name, want:type(euFd), seld:╥$fld╙, from:obj \{form:indx, want:type(euMS), seld:1, from:'null'()\}\}" data "╥$to╙"
- }
-
- proc mailGetField {field folder msg} {
- if {[catch {AEBuild -r 'CSOm' core getd {----} "obj \{form:name, want:type(euFd), seld:╥$field╙, from:obj \{form:indx, want:type(euMS), seld:$msg, from:obj {form:name, want:type(euMB), seld:╥$folder╙, from:obj {form:name, want:type(euMF), seld:'TEXT'(), from:'null'()}}\}\}" {rtyp{type:TEXT}}} text]} {
- return ""
- }
- set from [string first "╥" $text]
- set to [string first "╙" $text]
- return [string range $text [expr $from + 1] [expr $to - 1]]
- }
-
- # obj {want:type('prop'), from:obj {form:indx, want:type(euMS), seld:$msg, from:obj {form:name, want:type(euMB), seld:╥$folder╙, from:obj {form:name, want:type(euMF), seld:'TEXT'(), from:'null'()}}}, form:'prop', seld:type('euST')}
-
- proc mailMsgStatus {folder msg} {
- if {[catch {AEBuild -r 'CSOm' core getd {----} "obj \{want:type('prop'), from:obj \{form:indx, want:type(euMS), seld:$msg, from:obj \{form:name, want:type(euMB), seld:╥$folder╙, from:obj \{form:name, want:type(euMF), seld:'TEXT'(), from:'null'()\}\}\}, form:'prop', seld:type('euST')\}"} text]} {
- return ""
- }
- set from [string first "╥" $text]
- set to [string first "╙" $text]
- return [string range $text [expr $from + 1] [expr $to - 1]]
- }
-
- proc mailQueueLast {} {
- AEBuild -r 'CSOm' CSOm eQue ---- {obj {form:indx, want:type(euMS), seld:1, from:'null'()}}
- }
-
- # CSOm\eAtc{'----':obj {form:indx, want:type(euMS), seld:1, from:'null'()}, eDcl:[fss (╟486172643A4465736B746F7020466F6C6465723A62756773╚)]}
- proc mailAttachmentDoesntWork {name} {
- AEBuild -r 'CSOm' CSOm eAtc ---- {obj {form:indx, want:type(euMS), seld:1, from:'null'()}} eDcl [makeAlis $name]
- }
-
- # core\setd{'----':obj {form:prop, want:type(prop), seld:type(euPY), from:obj {form:indx, want:type(euMS), seld:1, from:'null'()}}, data:1}
- proc mailSetNumberProperty {prop to} {
- AEBuild -r 'CSOm' core setd ---- "obj \{form:prop, want:type(prop), seld:type($prop), from:obj \{form:indx, want:type(euMS), seld:1, from:'null'()\}\}" data $to
- }
-
-
- # obj {want:type('prop'), from:obj {form:indx, want:type(euMS), seld:$msg, from:obj {form:name, want:type(euMB), seld:╥$folder╙, from:obj {form:name, want:type(euMF), seld:'TEXT'(), from:'null'()}}}, form:'prop', seld:type('euST')}
- # Useful for: euPY, eBod, euSe, euSu, eCpy euPY
- proc mailGetNumberProperty {prop} {
- AEBuild -r 'CSOm' core getd ---- "obj \{form:prop, want:type(prop), seld:type($prop), from:obj \{form:indx, want:type(euMS), seld:1, from:'null'()\}\}"
- }
-
- proc mailCountMsgs {mbox} {
- set text [AEBuild -r 'CSOm' core cnte ---- "obj \{form:name, want:type(euMB), seld:╥$mbox╙, from:obj \{form:name, want:type(euMF), seld:'TEXT'(), from:'null'()\}\}" kocl {type(euMS)}]
- if {[regexp {:([0-9]+)} $text dummy mtch]} {
- return $mtch
- }
- error "Bad count"
- }
-
- proc mailCountMailboxes {} {
- set text [AEBuild -r 'CSOm' core cnte ---- "obj \{form:name, want:type(euMF), seld:'TEXT'(), from:'null'()\}" kocl {type(euMB)}]
- if {[regexp {:([0-9]+)} $text dummy mtch]} {
- return $mtch
- }
- error "Bad count"
- }
-
- proc updateMailboxLists {} {
- set num [mailCountMailboxes]
- for {set i 1} {$i <= $num} {incr i} {
- set res [AEBuild -r 'CSOm' core getd ---- "obj \{form:prop, want:type(prop), seld:type(euFS), from:obj \{form:indx, want:type(euMB), seld:$i, from:obj \{form:name, want:type(euMF), seld:'TEXT'(), from:'null'()\}\}\}" ]
- if {[regexp {╟(.*)╚} $res dummy fss]} {
- set name [file tail [specToPathName $fss]]
- message $name
- lappend boxes $name
- }
- }
-
- global eudoraBoxes modifiedVars
- lappend modifiedVars eudoraBoxes
- set eudoraBoxes $boxes
- menu -n openMailbox -p mailBoxProc -m $eudoraBoxes
- menu -n transfer -p transferProc -m $eudoraBoxes
- message "done."
- }
-
-
- #===============================================================================
-
- eventHandler CSOm eNot "eudoraHandler"
-
- # a sample 'msgs': obj {want:type(euMS), from:obj {want:type(euMB), from:obj {want:type(euMF), from:'null'(), form:name, seld:'TEXT'()}, form:name, seld:╥In╙}, form:indx, seld:18}, obj {want:type(euMS), from:obj {want:type(euMB), from:obj {want:type(euMF), from:'null'(), form:name, seld:'TEXT'()}, form:name, seld:╥In╙}, form:indx, seld:19}
- proc eudoraHandler {it} {
- global blah mailalertOnIncoming
- message ""
- if {[regexp {eWHp:wArv.*\[(obj.*)\], &repq} $it dum1 msgs]} {
- set ids [getMsgIDs $msgs]
- if {$mailalertOnIncoming} {
- mailBrowser In $ids
- beep; beep
- }
- }
- }
-
-
- proc mailBrowser {folder ids} {
- global inboxMembers ALPHA
- global tileLeft tileTop tileWidth tileHeight errorHeight
-
- checkMailPath
- switchTo $ALPHA
-
- global trashedMsgs$folder
- set trashedMsgs$folder {}
-
- set inboxMembers {}
- set text {}
-
- foreach id $ids {
- regexp {From: (.*)} [mailGetField from $folder $id] dummy from
- set from [mailAddr $from]
- set subject {}
- regexp {Subject: (.*)} [mailGetField subject $folder $id] dummy subject
- set tag {}
- while {[lsearch $inboxMembers $from$tag] >= 0} {
- if {![string length $tag]} {
- set tag { <2>}
- } else {
- regexp {[0-9]+} $tag tag
- set tag " <[expr $tag + 1]>"
- }
- }
- append text [format "%-40s : %s\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t░In░$id\r" "$from$tag" $subject]
- lappend inboxMembers $from$tag
- }
- if {![string length $text]} {
- alertnote "No messages!"
- return
- }
-
- if {[set ind [lsearch [winNames] "*Incoming MAILBOX*"]] >= 0} {
- bringToFront [lindex [winNames] $ind]
- setWinInfo read-only 0
- endOfBuffer
- insertText $text
- } else {
- killMailboxWindow
- new -n "* Incoming MAILBOX *" -g $tileLeft $tileTop $tileWidth $errorHeight
- global winModes
- set name [lindex [winNames] 0]
- changeMode [set winModes($name) Brws]
-
- insertText "(<cr> to go to message)\r-----\r$text"
- }
- select [nextLineStart [nextLineStart 0]] [nextLineStart [nextLineStart [nextLineStart 0]]]
- setWinInfo dirty 0
- setWinInfo read-only 1
- message ""
- }
-
-
- proc getMsgIDs {text} {
- if {[regexp -indices {seld:([0-9]+)} $text dummy ind]} {
- return [concat [string range $text [lindex $ind 0] [lindex $ind 1]] [getMsgIDs [string range $text [lindex $ind 1] end]]]
- }
- }
-
- proc startNotifying {} {
- global HOME ALPHA quitHooks
-
- AEBuild 'CSOm' CSOm nIns ---- [makeAlis "$HOME:$ALPHA"]
- lappend quitHooks stopNotifying
- }
-
- proc stopNotifying {} {
- global HOME ALPHA
-
- AEBuild 'CSOm' CSOm nRem ---- [makeAlis "$HOME:$ALPHA"]
- }
-